package com.enjoyor.soa.traffic.api.tvs.service.dubbo;

import java.util.Map;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/***
 * 
 * @ClassName: DubboRoadTPIService
 * @Description: 获取指数
 * @author wuhao
 * @email
 * @date 2016年7月11日 上午8:42:46
 */
public interface DubboTPIService {

    /***
     * 
     * @Title: getAllRoadTPI @Description: 获取整个城市指数 @param
     *         m:startTime（开始时间yyyy-MM-dd
     *         HH:mm:ss）,endTime（结束时间）;m为空则查询当天的指数 @return
     *         ResultPojo的resultList为BlockTPIDto的List @throws
     */
    public ResultPojo getAllRoadTPI(Map<String, Object> m);

    /***
     * 
     * @Title: getRegionTPI @Description: 获取区域指数 @param
     *         m:startTime（开始时间yyyy-MM-dd
     *         HH:mm:ss）,endTime（结束时间）;m为空则查询当天的指数 @return
     *         返回的ResultPojo的resultList为map，key为regionId，value为指数(BlockTPIDto的List) @throws
     */
    public ResultPojo getRegionTPI(Map<String, Object> m);

    /***
     * 
     * @Title: getRealTimeRegionTPI @Description: 获取实时的区域指数 @return
     *         List<BlockTPIDto> @throws
     */
    public ResultPojo getRealTimeRegionTPI();

    /***
     * 
     * @Title: getRealTimeRoadTPI @Description: 获取实时的道路指数 @return
     *         List<BlockTPIDto> @throws
     */
    public ResultPojo getRealTimeRoadTPI();

    /***
     * 
     * @Title: getAllRoadTPIHis @Description: 获取整个城市历史指数 @param
     *         m:startTime（开始时间yyyy-MM-dd HH:mm:ss）,endTime（结束时间）; @return
     *         ResultPojo的resultList为BlockTPIDto的List @throws
     */
    public ResultPojo getAllRoadTPIHis(Map<String, Object> m);

    /***
     * 
     * @Title: getRealTimeTPI for 运行监测 @Description: 获取实时的区域指数 @param
     *         m:type,类型（1整体，2区域，3道路，4路段，5自定义区域）；ids，list<String>
     *         （区域、道路、路段的id集合）；roadType（道路类型：主干、次干） @return List<TPIDto> @throws
     */
    public ResultPojo getRealTimeTPI(Map<String, Object> m);

    /***
     * 
     * @Title: getRealTimeTPIByPage for 运行监测 @Description: 获取实时的区域指数 @param
     *         m:type,类型（1整体，2区域，3道路，4路段，5自定义区域）；ids，list<String>
     *         （区域、道路、路段的id集合）；roadType（道路类型：主干、次干）。Page page @return
     *         Page @throws
     */
    @SuppressWarnings("rawtypes")
    public ResultPojo getRealTimeTPIByPage(Map<String, Object> m, Page page);

    /***
     * 
     * @Title: getSubBlockRealTimeTPI for 运行监测 @Description:
     *         获取区域、道路的子路段的指数 @param m：type
     *         类型（2区域，3道路，5自定义区域）；id（区域或者道路id） @return @throws
     */
    public ResultPojo getSubBlockRealTimeTPI(Map<String, Object> m);

    /***
     * 
     * @Title: getSubBlockRealTimeTPIByPage for 运行监测 @Description:
     *         分页获取区域、道路的子路段的指数 @param m：type
     *         类型（2区域，3道路，5自定义区域）；id（区域或者道路id）。Page：page @return Page @throws
     */
    @SuppressWarnings("rawtypes")
    public ResultPojo getSubBlockRealTimeTPIByPage(Map<String, Object> m, Page page);

    /***
     * 
     * @Title: getRealTimeRegionTPI for 运行监测 @Description: 获取实时的区域指数 @param
     *         m:type,类型（1整体，2区域，3道路，4路段） @return
     *         Map(String,List<BlockTPIDto>):String为type @throws
     */
    public ResultPojo getAllRealTimeTPI(Map<String, Object> m);

    /***
     * 
     * @Title: getHisTPI for 运行监测 @Description: 获取历史交通指数相关信息 @param
     *         m:startTime（开始时间yyyy-MM-dd
     *         HH:mm:ss）；endTime（结束时间）；type,类型（1整体，2区域，3道路，4路段）；id，区域、道路、路段的id @return
     *         ResultPojo的resultList为BlockTPIDto的List @throws
     */
    public ResultPojo getHisTPI(Map<String, Object> m);

}
